package tech.aistar.mapper;

import org.apache.ibatis.annotations.Param;
import tech.aistar.entity.Customer;
import tech.aistar.vo.CustomerQueryVo;

import java.util.List;
import java.util.Map;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:
 * @date 2019/8/21 0021
 */
public interface CustomerMapper {

    List<Customer> findAll();

    void save(Customer customer);

    /**增删改**/
    void delById(Integer id);

    /**统计status = 0 1的人数   status  count
     * 返回类型是一个第三方的实体类
     * **/

    List<CustomerQueryVo> countStatus();

    /**
     * 假设输入参数存在俩个
     * @param pageNow
     * @param pageSize
     * @return
     */
    List<Customer> findByLimit(@Param("start") Integer pageNow,@Param("end") Integer pageSize);


    /**
     * 输入映射参数是hashmap的类型
     * @param maps
     * @return
     */
    List<Customer> findAllMap(Map<String,Object> maps);


    Customer getById(Integer id);

    /**
     * insert into jdbc_customer(cname,phone,status) values(?,?,?),(?,?,?),(?,?,?);
     * 批处理 - jdbc
     * @param customers
     */
    void saveList(@Param("customers") List<Customer> customers);

    /**
     * 找出id = 21 22 23
     * @param ids
     * @return
     */
    List<Customer> findByIds(@Param("ids") List<Integer> ids);

}
